/*
 ============================================================================
 Name        : est_dados_ep2.c
 Author      : Jonatas Lopes de Paiva
 Description : Arquivo principal, contem a funcao main
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>

#include "types.h"
#include "io.h"
#include "operacoes.h"

int main(int argc, char **argv) {

	if (argc != 3) {
		printf("Parametros invalidos.\n");
		return EXIT_FAILURE;
	}

	Grafo *grafo = readFile(argv[1]);

	if (grafo == NULL) {
		return EXIT_FAILURE;
	}

	if (grafo->size == 0) {
		printf("Arquivo vazio.");
		destroyGrafo(grafo);
		return EXIT_FAILURE;
	}

	int saida = CamMin(grafo, argv[2]);

	if (saida == -1) {
		printf("Erro. O grafo e disconexo.\n");
		destroyGrafo(grafo);
		return EXIT_FAILURE;
	}

	if (saida == -2) {
		printf("Erro. O arquivo nao pode ser criado.\n");
		destroyGrafo(grafo);
		return EXIT_FAILURE;
	}

	if (saida == 0) {
		printf(
				"Erro. Nao houve memoria suficiente para executar o algoritmo.\n");
		destroyGrafo(grafo);
		return EXIT_FAILURE;
	}

	printf("Arquivo salvo com sucesso.\n");

	destroyGrafo(grafo);

	return EXIT_SUCCESS;
}
